import { ReactElement } from "react";
import type { RouteObject } from "react-router-dom";

export interface XMeta {
    icon?: ReactElement;
    title?: ReactElement | string;
}

// 使用交叉类型，让 XRoute 拥有 RouteObject 的所有属性，并且可以有自己的属性
// 交叉类型的特点：合并两个类型的属性，相同的属性会被覆盖
type XRoute = RouteObject & {
    meta?: XMeta;
    children?: XRoutes;
    hidden?: boolean;
}

export type XRoutes = XRoute[];